From bce4d669ee6c66267c7017e440e3c4c4f244e18a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Mon, 21 Dec 2020 12:49:06 +0100 Subject: [PATCH] gskpango: Fix a potential cairo_t leak The previous early return did not cairo_destroy() it. --- gtk/gskpango.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gtk/gskpango.c b/gtk/gskpango.c index 9242a9bc86..2fa53f0624 100644 --- a/gtk/gskpango.c +++ b/gtk/gskpango.c @@ -234,7 +234,6 @@ gsk_pango_renderer_draw_shape (PangoRenderer *renderer, int y) { GskPangoRenderer *crenderer = (GskPangoRenderer *) (renderer); - cairo_t *cr; PangoLayout *layout; PangoCairoShapeRendererFunc shape_renderer; gpointer shape_renderer_data; @@ -263,17 +262,21 @@ gsk_pango_renderer_draw_shape (PangoRenderer *renderer, if (!handled) { - cr = gtk_snapshot_append_cairo (crenderer->snapshot, &crenderer->bounds); + cairo_t *cr; layout = pango_renderer_get_layout (renderer); if (!layout) return; + cr = gtk_snapshot_append_cairo (crenderer->snapshot, &crenderer->bounds); shape_renderer = pango_cairo_context_get_shape_renderer (pango_layout_get_context (layout), &shape_renderer_data); if (!shape_renderer) - return; + { + cairo_destroy (cr); + return; + } set_color (crenderer, PANGO_RENDER_PART_FOREGROUND, cr); -- 2.30.2